iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 22
6
Modern Web

ASP.NET MVC網頁程式介紹系列 第 22

[Day 22] C#中Json的序列化和反序列化的幾種方式(三)

  • 分享至 

  • xImage
  •  

今天分享第三種方式:使用JSON.NET類庫

首先要先Nuget Newtonsoft.Json
https://ithelp.ithome.com.tw/upload/images/20171231/20105694ZO42KaJC3f.jpg

以下是序列化的方式

List<Student> lstStuModel = new List<Student>()
{
    new Student(){ID=1,Name="張飛",Age=250,Sex="男"},
    new Student(){ID=2,Name="潘金蓮",Age=300,Sex="女"}
};

//Newtonsoft.Json序列化
string jsonData = JsonConvert.SerializeObject(lstStuModel);
Console.WriteLine(jsonData);

以下是反序列化的方式

//Newtonsoft.Json反序列化
string json = @"{ 'Name':'C#','Age':'3000','ID':'1','Sex':'女'}";
Student descJsonStu = JsonConvert.DeserializeObject<Student>(json);//反序列化
Console.WriteLine(string.Format("反序列化: ID={0},Name={1},Sex={2},Sex={3}", descJsonStu.ID, descJsonStu.Name, descJsonStu.Age, descJsonStu.Sex));

以下是完整程式碼

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

namespace ConsoleTest2
{
    public class Student
    {
        public int ID { get; set; }

        public string Name { get; set; }

        public int Age { get; set; }

        public string Sex { get; set; }
    }
    class Program
    {
        static void Main(string[] args)
        {
            List<Student> lstStuModel = new List<Student>()
            {
                new Student(){ID=1,Name="張飛",Age=250,Sex="男"},
                new Student(){ID=2,Name="潘金蓮",Age=300,Sex="女"}
            };

            //Newtonsoft.Json序列化
            string jsonData = JsonConvert.SerializeObject(lstStuModel);

            Console.WriteLine(jsonData);

            //Newtonsoft.Json反序列化
            string json = @"{ 'Name':'C#','Age':'3000','ID':'1','Sex':'女'}";
            Student descJsonStu = JsonConvert.DeserializeObject<Student>(json);//反序列化
            Console.WriteLine(string.Format("反序列化: ID={0},Name={1},Sex={2},Sex={3}", descJsonStu.ID, descJsonStu.Name, descJsonStu.Age, descJsonStu.Sex));
            Console.ReadKey();
        }
    }
}

以下是程式畫面
https://ithelp.ithome.com.tw/upload/images/20171231/20105694W2e6bkAOOB.jpg

總結:最後還是儘量使用JSON.NET來序列化和反序列化,性能好
In this article we discussed about how many ways we can implement serialization/deserialization in C#. However JSON.NET wins over other implementations because it facilitates more functionality of JSON validation, JSON schema, LINQ to JSON etc. So use JSON.NET always.

Json到這裡已經告一段落了,
接下來我們會用ASP.NET MVC寫一個簡單的註冊功能,
還有簡單的登入功能,
看我這個速度應該會超過30天,
超過30天還是會繼續寫,
會把整個基本的功能都完成為止。

--
小弟不才,
如果有謬誤或是要補充的,
都歡迎一起來討論!


上一篇
[Day 21] C#中Json的序列化和反序列化的幾種方式(二)
下一篇
[Day 23] 當ASP.NET MVC遇到Ajax (一)
系列文
ASP.NET MVC網頁程式介紹30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言